The present invention relates to data compression and decompression in an encoding/decoding system. The present invention has particular application for image coding/decoding systems where communicating terminals employ reconstruction algorithms based on previously decoded images.
Videocommunication equipment, such as videoconferencing systems and videophone devices, have enabled people to communicate visually without having to travel to a common location. As a result, communication participants can be separated by large distances.
A typical videoconferencing uses a video camera to capture a series of images of a target, such as a meeting participant or a document. The series of images is encoded as a data stream and transmitted over a communications channel to a remote location. For example, the data stream may be transmitted over a phone line, an integrated services digital network (ISDN) line, or the Internet. The encoding process is typically implemented using a digital video coder/decoder (codec), which divides the images into blocks and compresses the blocks according to a video compression standard, such as the H.263 and H.261 recommendations by the Telecommunication Standardization Sector of the International Telecommunication Union (ITU-T). In standards of this type, a block may be compressed independent of the previous image or as a difference between the block and part of the previous image.
In a typical videoconferencing system, the data stream is received at a remote location, where it is decoded into a series of images, which may be viewed at the remote location. Depending on the equipment used, this process typically occurs at a rate of one to thirty frames per second.
In some videoconferencing applications, it is desirable to transmit a high quality still image. Until the image is completely received and decoded, the receiving terminal is often unaware of its content. Some decoders decode and display a block only after they have received the complete image. With the image being transmitted as a series of blocks, considerable delay is often involved in transmitting the entire image. For example, in applications where the available bandwidth for transmitting data is small, transmission of a 352xc3x97288 pixel image may require up to a minute. In order to transmit still images more quickly, the image may be highly compressed.
The above-mentioned Telecommunication Standardization Sector recently revised ITU-T H.263 recommendation by appending thereto Annex J: Deblocking Filter Mode. This annex describes an optional loop filter (also referred to as block edge filter or deblocking filter) to be used within the prediction loop used for coding in each of the send and receive terminals in image communicating system. The main purpose of the loop filter is to reduce blocking artifacts. Such artifacts often appear at boundaries between different image blocks. The above-mentioned annex, not unlike other recommendations by the ITU, was adopted after much research and consideration for the purpose of providing communicating image terminals of various types and manufacturers the ability to communicate images accurately.
In connection with the present invention, a significant discovery has been made. After intense research, it has been discovered that respective implementations of two image communication terminals, each fully compliant with the above-mentioned annex to the ITU-T H.263 recommendation result in visually apparent artifacts which result from divergence between sending and receiving terminals. Such artifacts appear as long as the loop filter portion of Annex J is used, irrespective of whether the other portions of Annex J (Unrestricted Motion Vectors, 4MV) are also used. The response by the ITU-T was one of surprise.
Generally, the present invention provides methods and arrangements for the removal or reduction of divergence artifacts between the transmitting codec and the receiving code. In one general embodiment of the invention, a method for transmitting a representation of an image from a first terminal to a second terminal uses a communications channel on which communication has been established between the first terminal and the second terminal. The method operates each of the first and second terminals using an inverse transformer loop having a decoding algorithm that accumulates at least one error, and selectively uses a loop filter in the inverse transformer loop based on at least one predetermined condition. In a more specific embodiment, the predetermined condition includes at least one of: surpassing a quantization parameter threshold; and processing chroma channel data.
In another method embodiment, the present invention provides a method for encoding and decoding a representation of an image for communication between a first terminal to a second terminal. The method comprises: operating each of the first and second terminals using an inverse transformer loop having a decoding algorithm; and preventing unacceptable accumulation of an error within the inverse transformer loop by at least one of: pre-processing input data before using the inverse transformer loop to process the input data; using the inverse transformer in the loop according to a bit-exact specification between the encoder and decoder in the resepctive first and second terminals; using the inverse transformer in the loop according to one of a plurality of bit-exact specifications between the encoder and decoder in the respective first and second terminals and negotiating a common decision on the particular specification through encoder/decoder negotiation; providing a quantization value in the inverse transformer loop that takes into account that the effect of the quantization values on loop filter divergence so as to be less prone to divergence; adjusting or providing transform coefficients to limit divergence; choosing an encoding mode for macro-blocks of input data; modifying the encoder to refresh portions of the image that are diverging; modify the loop filter characteristics so that inverse transform mismatches are not amplified; applying the loop filter to input data corresponding to a frame buffer image just before sending to a display circuit without writing back the results to a frame buffer in the loop.
Certain other aspects of the invention are directed to encoding and decoding equipment and circuits constructed and arranged to operate according to the above methodology.
The above summary is not intended to characterize each embodiment of the present invention. Other aspects of the present invention will become apparent upon review of the figures and corresponding xe2x80x9cDetailed Descriptionxe2x80x9d.